package br.com.lacibMusic.rn;

import br.com.lacibMusic.dao.AlbumDAO;
import br.com.lacibMusic.entidades.Album;
import br.com.lacibMusic.dao.GenericDAO;
import br.com.lacibMusic.entidades.Selo;
import java.util.List;
import javax.faces.model.SelectItem;

public class AlbumRN {

    private final GenericDAO dao = new GenericDAO();
    private final AlbumDAO albumDao = new AlbumDAO();

    public Album novo() {
        return new Album();
    }

    public boolean salvar(Album c) {
        if (c.getId() == null) {
            return dao.criar(c);
        } else {
            return dao.alterar(c);
        }
    }

    public boolean remover(Album c) {
        return dao.excluir(c);
    }

    public Album obter(Integer id) {
        return (Album) dao.obter(Album.class, id);
    }

    public List<Album> obterTodos() {
        return dao.obterTodos(Album.class);
    }

    public List<Album> obterTodosPorGenero(String genero) {
        return albumDao.obterTodosPorGenero(Album.class, genero);
    }

    public List<Album> obterPorNome(String nome) {
        return albumDao.obterPorNome(Album.class, nome);
    }

    public SelectItem[] getSelos() {
        List<Selo> selos = dao.obterTodos(Selo.class);
        SelectItem[] retorno = new SelectItem[selos.size()];
        for (int i = 0; i < retorno.length; i++) {
            retorno[i] = new SelectItem(selos.get(i), selos.get(i).getNomeSelo());
        }
        return retorno;
    }
    /*
    public static void main(String[] args) {
        List<Album> lAlbuns = new AlbumRN().obterTodos();
        Album album;
        String nome;
        String genero = null;
        for (int i = 0; i < lAlbuns.size(); i++) {
            int cont = 0;
            System.out.println("Album: " + lAlbuns.get(i).getNomeAlbum());
            nome = lAlbuns.get(i).getDiscoList().get(0).getMusicaList().get(0).getArtistaid().getNomeArtista();
            for (int j = 0; j < lAlbuns.get(i).getDiscoList().get(0).getMusicaList().size(); j++) {
                System.out.println("nome: " + nome + "   LAlbum: " + lAlbuns.get(i).getDiscoList().get(0).getMusicaList().get(j).getArtistaid().getNomeArtista());
                if ((!nome.equals(lAlbuns.get(i).getDiscoList().get(0).getMusicaList().get(j).getArtistaid().getNomeArtista())) && (cont < 3)) {
                    cont++;
                    if (cont == 3) {
                        nome = "";
                    }
                }
                switch (lAlbuns.get(i).getDiscoList().get(0).getMusicaList().get(j).getEstiloMusicalid().getNomeGeneroMusical()) {
                    case "Rock":
                        genero = "Rock";
                        break;
                    case "Jazz":
                        genero = "Jazz";
                        break;
                    case "Latin":
                        genero = "Latin";
                        break;
                    case "Hardcore":
                        genero = "Hardcore";
                        break;
                    case "Pop":
                        genero = "Pop";
                        break;
                    case "Country":
                        genero = "Country";
                        break;
                    case "Blues":
                        genero = "Blues";
                        break;
                    case "Folk":
                        genero = "Folk";
                        break;
                    case "Hip Hop":
                        genero = "Hip Hop";
                        break;
                    case "R&B":
                        genero = "R&B";
                        break;
                    case "Eletronic":
                        genero = "Eletronic";
                        break;
                    case "Reggae":
                        genero = "Reggae";
                        break;
                    default:
                        System.out.println("Não entrou em nenhum Gênero !");
                }
            }
            album = lAlbuns.get(i);
            if (!"".equals(nome)) {
                album.setNomeArtista(nome);
            }
            album.setGenero(genero);
            new AlbumRN().salvar(album);
        }
    }
    */
}
